1. Statement of the Technical Field
The present invention relates to the distribution of form-based input screens, and more particularly to the client-side validation of pattern conformity for form-based input provided through a distributed form.
2. Description of the Related Art
Form based input is the enabling technology which permits the widespread distribution of applications across generic client platforms such as the conventional content browser. In the prototypical distributed application, a markup language defined interface can form the principal conduit through which end users can interact with backend application logic. Often configured in the form of a Web page, the interface can be provided to the content browser by a content server and can take the form either of a pre-defined static page, or a dynamically generated page. Form input fields can be positioned within the interface through which user input can be accepted and posted to the backend application logic for further processing.
As in the case of any application, regardless of its mode of distribution, oftentimes, validation will be required for each input field in a form defined within an interface in which the end user can provide ad hoc input. Examples of input fields which might require validation can include free-form text input fields in which the end user is free to provide any time of input able to provided within the field. As the application logic may expect input of a particular format or pattern, however, validation will be required. In this regard, pattern validation refers to the inspection of user input to ensure that the input conforms to a particular pattern. Examples include date formats, time formats, credit card number formats, address formats, telephone number formats and the like.
Within the context of hypertext markup language (HTML) documents, it is well known to incorporate pattern validation within the interface. Specifically, to ensure that form based input comports with a particular pattern, some have incorporated simplistic programmatic scripts within the markup language document in which the pattern utilized to validate a form input field has been hard coded in the script. Upon the submission of form based input in the markup language document, the script can be executed to validate that the form input has a format which matches the pattern hard coded within the embedded script.
Despite the flexibility afforded by script based pattern validation within HTML defined forms, HTML defined forms mix data, logic and presentation in contravention of standard programming practices. In this regard, the well-known model-view-controller paradigm demands that each of data, logic presentation remain separable. In this way, though the presentation layer may change to suit the user interface requirements of an end user, the underlying logic layer need not also change. To accommodate the increasing complexity of transactions conducted through forms, the XForms specification has been proposed as a presentation independent way of handling interactive Web transactions. Significantly, the XForms specification separates data and logic from presentation in that XForms utilizes the extensible markup language (XML) for data transport and HTML for data display.
Advantageously, in the conventional XForms implementation, pattern validation can be implemented using heavy-weight Javascript libraries at the client side. Implementing client-side pattern validation can be important because in many circumstances it is desirable to validate form input without requiring a transaction between client and server. Yet, to accomplish the pattern validation of XForms, one must deploy a heavyweight Javascript validation library at the client. Where the client is a fixed, desktop unit enjoying substantial resources, hosting a heavyweight library will be of no consequence. The same cannot be said, however, of the resource limited client such as a mobile device.
Mobile device clients differ from conventional computing clients in that less computing resources are available for use by any client side logic and also in that a communicative link to backend application logic will not always remain available. Given both constraints associated with mobile device clients, it will be preferable to validate form based input prior to submitting the form based input to the backend application logic. Yet, to date pattern validation in the mobile device client strictly has been limited to server side validation primarily because mobile device clients lack the resources required to host a heavyweight validation library.